package test;
/*- 校验密码是否合法。
        - 必须至少9个字符。
        - 必须至少2个大写字符。
        - 必须包含字母和数字。
        - 代码实现，效果如图所*/

import java.util.Scanner;

public class Test7 {
    public static void main(String[] args) {
        System.out.println("请输入密码");
        String str = new Scanner(System.in).next();
        boolean flag=true;
        // 1.保存大写字母、小写字母和数字的个数
        int bigCount = 0, smallCount = 0, numberCount = 0;
        // 2.遍历出字符串中每一个字符，并对每一个字符进行判断
        for(int i = 0; i < str.length(); i++) {
            // 2.1获取到每个字符
            char c = str.charAt(i);
            // 2.2判断字符是否为大写字母
            if (c >= 'A' && c <= 'Z') {
                bigCount++;
            }
            // 2.3判断字符是否为小写字母
            else if (c >= 'a' && c <= 'z') {
                smallCount++;
            }
            // 2.4判断字符是否为数字
            else if (c >= '0' && c <= '9') {
                numberCount++;
            }
        }

        if (str.length()<9){
            flag=false;
        }
        if (bigCount<2){
            flag=false;
        }
        if (bigCount==0||smallCount==0||numberCount==0){
            flag=false;
        }
        if (flag){
            System.out.println("密码合法");
        }
        else
            System.out.println("密码不合法");
    }
}
